package com.yangfan.screenshot.message;

import android.os.Handler;
import android.os.Looper;
import android.os.Message;

import androidx.annotation.NonNull;

import java.util.ArrayList;

/**
 * @author : yangfan
 * @date : 2022/12/14-21:34
 * desc   :
 */
public class LocalMessageManager extends Handler {

    public interface HandleMsgListener {
        /**
         * 处理消息
         *
         * @param msg 味精
         */
        void handleMessage(Message msg);
    }

    private ArrayList<HandleMsgListener> listeners = new ArrayList<>();

    public void addListener(HandleMsgListener listener) {
        if (!listeners.contains(listener)) {
            listeners.add(listener);
        }
    }

    public void removeListener(HandleMsgListener listener) {
        if (listeners.contains(listener)) {
            listeners.remove(listener);
        }
    }

    private LocalMessageManager(){
        super(Looper.getMainLooper());
    }

    private static class Holder{
        private static final LocalMessageManager HANDLER = new LocalMessageManager();
    }

    public static LocalMessageManager getInstance() {
        return Holder.HANDLER;
    }

    @Override
    public void handleMessage(@NonNull Message msg) {
        super.handleMessage(msg);
        for (HandleMsgListener listener : listeners) {
            listener.handleMessage(msg);
        }
    }
}
